6 changed files with 823 additions and 0 deletions
-
142src/main/java/com/spring/modules/material/controller/ProductionStockController.java
-
55src/main/java/com/spring/modules/material/dao/ProductionStockMapper.java
-
279src/main/java/com/spring/modules/material/service/Impl/ProductionStockServiceImpl.java
-
38src/main/java/com/spring/modules/material/service/ProductionStockService.java
-
166src/main/java/com/spring/modules/production/entity/SoFinalRollOutData.java
-
143src/main/resources/mapper/material/ProductionStockMapper.xml
@ -0,0 +1,142 @@ |
|||
package com.spring.modules.material.controller; |
|||
|
|||
import com.spring.common.utils.PageUtils; |
|||
import com.spring.common.utils.R; |
|||
import com.spring.modules.material.data.*; |
|||
import com.spring.modules.material.service.ProductionStockService; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.RequestBody; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
import java.util.List; |
|||
|
|||
@RestController |
|||
@RequestMapping(value = "/productionStock") |
|||
public class ProductionStockController { |
|||
|
|||
@Autowired |
|||
private ProductionStockService productionStockService; |
|||
|
|||
/** |
|||
* @Description TODO |
|||
* @Title searchTransHeader |
|||
* @param data |
|||
* @author rq |
|||
* @date 2024/5/31 11:45 |
|||
* @return R |
|||
* @throw |
|||
*/ |
|||
@PostMapping(value="/searchTransHeader") |
|||
public R searchTransHeader(@RequestBody TransHeaderData data) { |
|||
PageUtils page = productionStockService.searchTransHeader(data); |
|||
return R.ok().put("page", page); |
|||
} |
|||
|
|||
/** |
|||
* @Description TODO |
|||
* @Title searchTransDetail |
|||
* @param data |
|||
* @author rq |
|||
* @date 2024/5/31 15:23 |
|||
* @return R |
|||
* @throw |
|||
*/ |
|||
@PostMapping(value="/searchTransDetail") |
|||
public R searchTransDetail(@RequestBody TransHeaderData data){ |
|||
List<TransDetailData> rows = productionStockService.searchTransDetail(data); |
|||
return R.ok().put("rows", rows); |
|||
} |
|||
|
|||
@PostMapping(value="/searchTransDetailSub") |
|||
public R searchTransDetailSub(@RequestBody TransHeaderData data){ |
|||
List<TransDetailSubData> rows = productionStockService.searchTransDetailSub(data); |
|||
return R.ok().put("rows", rows); |
|||
} |
|||
|
|||
|
|||
@PostMapping(value="/getWareHouseList") |
|||
public R getWareHouseList(@RequestBody WareHouseSearchOutData data){ |
|||
List<WareHouseSearchOutData> rows = productionStockService.getWareHouseList(data); |
|||
return R.ok().put("rows", rows); |
|||
} |
|||
/** |
|||
* @Description 保存入库单抬头 |
|||
* @Title saveTransHeaderData |
|||
* @param data |
|||
* @author rq |
|||
* @date 2024/5/31 17:37 |
|||
* @return R |
|||
* @throw |
|||
*/ |
|||
@PostMapping(value="/saveTransHeaderData") |
|||
public R saveTransHeaderData(@RequestBody TransHeaderData data) { |
|||
String result= productionStockService.saveTransHeaderData(data); |
|||
return R.ok().put("transNo",result); |
|||
} |
|||
/** |
|||
* @Description TODO |
|||
* @Title searchTransDetailAndSubCach |
|||
* @param data |
|||
* @author rq |
|||
* @date 2024/6/4 11:31 |
|||
* @return R |
|||
* @throw |
|||
*/ |
|||
@PostMapping(value="/searchTransDetailAndSubCach") |
|||
public R searchTransDetailAndSubCach(@RequestBody TransHeaderData data) { |
|||
TransHeaderData row= productionStockService.searchTransHeaderData(data); |
|||
List<TransDetailsubCachData> rows =productionStockService.searchTransDetailsubCachData(data); |
|||
return R.ok().put("row",row).put("rows",rows); |
|||
} |
|||
/** |
|||
* @Description 手工创建缓存卷 |
|||
* @Title createNewCachRoll |
|||
* @param data |
|||
* @author rq |
|||
* @date 2024/6/4 14:16 |
|||
* @return R |
|||
* @throw |
|||
*/ |
|||
@PostMapping(value="/saveStockCach") |
|||
public R saveStockCach(@RequestBody TransDetailsubCachData data) { |
|||
String reStr= productionStockService.saveStockCach(data); |
|||
return R.ok().put("str",reStr); |
|||
} |
|||
@PostMapping(value="/deleteSubCach") |
|||
public R deleteSubCach(@RequestBody TransDetailsubCachData data) { |
|||
productionStockService.deleteSubCach(data); |
|||
return R.ok(); |
|||
} |
|||
|
|||
/** |
|||
* @Description TODO |
|||
* @Title finalSaveTransHeaderDetail |
|||
* @param data |
|||
* @author rq |
|||
* @date 2024/6/4 15:48 |
|||
* @return R |
|||
* @throw |
|||
*/ |
|||
@PostMapping(value="/finalSaveTransHeaderDetail") |
|||
public R finalSaveTransHeaderDetail(@RequestBody TransHeaderData data) { |
|||
productionStockService.finalSaveTransHeaderDetail(data); |
|||
return R.ok(); |
|||
} |
|||
/** |
|||
* @Description 删除入库主表 |
|||
* @Title deleteTransHeaderData |
|||
* @param data |
|||
* @author rq |
|||
* @date 2024/6/5 14:55 |
|||
* @return R |
|||
* @throw |
|||
*/ |
|||
@PostMapping(value="/deleteTransHeaderData") |
|||
public R deleteTransHeaderData(@RequestBody TransHeaderData data) { |
|||
productionStockService.deleteTransHeaderData(data); |
|||
return R.ok(); |
|||
} |
|||
|
|||
} |
|||
@ -0,0 +1,55 @@ |
|||
package com.spring.modules.material.dao; |
|||
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.spring.modules.material.data.*; |
|||
import com.spring.modules.production.entity.SoFinalRollOutData; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
import org.apache.ibatis.annotations.Param; |
|||
import org.springframework.stereotype.Repository; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Mapper |
|||
@Repository |
|||
public interface ProductionStockMapper { |
|||
|
|||
IPage<TransHeaderData> searchTransHeader(Page<TransHeaderData> page, @Param("query") TransHeaderData data); |
|||
|
|||
|
|||
List<TransDetailData> searchTransDetail(TransHeaderData data); |
|||
|
|||
List<TransDetailSubData> searchTransDetailSub(TransHeaderData data); |
|||
|
|||
List<WareHouseSearchOutData> getWareHouseList(WareHouseSearchOutData inData); |
|||
|
|||
TransHeaderData searchTransHeaderData(TransHeaderData data); |
|||
|
|||
List<TransDetailsubCachData> searchTransDetailsubCachData(TransHeaderData inData); |
|||
|
|||
void saveIssureCach(TransDetailsubCachData data); |
|||
|
|||
List<TransDetailData> getDetailDataByCach(TransHeaderData inData); |
|||
|
|||
Double getNextTransHeaderSeqNo (TransHeaderData inData); |
|||
|
|||
void saveTransDetailData(TransDetailData inData); |
|||
|
|||
|
|||
|
|||
void batchInsertTransDetailSub( List<TransDetailSubData> inlist); |
|||
|
|||
void deleteTransCach(TransHeaderData inData); |
|||
|
|||
void deleteSubCach(TransDetailsubCachData inData); |
|||
|
|||
void deleteTransHeaderData(TransHeaderData inData); |
|||
|
|||
void updateTransHeader(TransHeaderData inData); |
|||
|
|||
List<TransDetailSubData> checkTransDetailSubIsScan(@Param("site") String site,@Param("rollNo")String rollNo); |
|||
|
|||
SoFinalRollOutData getFinalRoll(@Param("site") String site,@Param("rollNo")String rollNo); |
|||
|
|||
void updateFinalRollStatus(@Param("site") String site,@Param("rollNo")String rollNo,@Param("statusCode") Integer statusCode,@Param("status")String status); |
|||
} |
|||
@ -0,0 +1,279 @@ |
|||
package com.spring.modules.material.service.Impl; |
|||
|
|||
|
|||
import com.baomidou.mybatisplus.core.metadata.IPage; |
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
|||
import com.spring.common.utils.DateUtil; |
|||
import com.spring.common.utils.PageUtils; |
|||
import com.spring.modules.base.dao.NormalSearchMapper; |
|||
import com.spring.modules.base.entity.InventoryStockRoll; |
|||
import com.spring.modules.base.service.InventoryStockRollService; |
|||
import com.spring.modules.base.service.TransNoControlService; |
|||
import com.spring.modules.material.dao.ProductionStockMapper; |
|||
import com.spring.modules.material.data.*; |
|||
import com.spring.modules.material.service.IssureSoService; |
|||
import com.spring.modules.material.service.ProductionStockService; |
|||
import com.spring.modules.production.entity.SoFinalRollOutData; |
|||
import com.spring.modules.production.mapper.ShopOrderMapper; |
|||
import com.spring.modules.production.vo.ShopOrderVo; |
|||
import com.spring.modules.report.dao.ProcedureDao; |
|||
import com.spring.modules.sys.entity.SysUserEntity; |
|||
import org.apache.shiro.SecurityUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
import org.springframework.transaction.annotation.Transactional; |
|||
|
|||
import java.math.BigDecimal; |
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
import java.util.Map; |
|||
|
|||
@Service |
|||
public class ProductionStockServiceImpl implements ProductionStockService { |
|||
@Autowired |
|||
private InventoryStockRollService inventoryStockRollService; |
|||
@Autowired |
|||
private ShopOrderMapper shopOrderMapper; |
|||
@Autowired |
|||
private ProcedureDao procedureDao; |
|||
@Autowired |
|||
private NormalSearchMapper normalSearchMapper; |
|||
@Autowired |
|||
private ProductionStockMapper productionStockMapper; |
|||
@Autowired |
|||
private TransNoControlService transNoControlService; |
|||
@Override |
|||
public PageUtils searchTransHeader(TransHeaderData data) { |
|||
IPage<TransHeaderData> resultList = this.productionStockMapper.searchTransHeader(new Page<TransHeaderData>(data.getPage(), data.getLimit()), data); |
|||
return new PageUtils(resultList); |
|||
} |
|||
|
|||
@Override |
|||
public List<TransDetailData> searchTransDetail(TransHeaderData data){ |
|||
return productionStockMapper.searchTransDetail(data); |
|||
} |
|||
|
|||
@Override |
|||
public List<TransDetailSubData> searchTransDetailSub(TransHeaderData data){ |
|||
return productionStockMapper.searchTransDetailSub(data); |
|||
} |
|||
|
|||
@Override |
|||
public List<WareHouseSearchOutData> getWareHouseList(WareHouseSearchOutData inData){ |
|||
return productionStockMapper.getWareHouseList(inData); |
|||
} |
|||
|
|||
@Override |
|||
@Transactional |
|||
public String saveTransHeaderData(TransHeaderData inData){ |
|||
ShopOrderVo shopOrder=new ShopOrderVo(); |
|||
shopOrder.setSite(inData.getSite()); |
|||
shopOrder.setOrderNo(inData.getOrderRef1()); |
|||
List<ShopOrderVo> searchShopOrder = shopOrderMapper.selectShopOrderList(shopOrder); |
|||
if(searchShopOrder.size()==0){ |
|||
throw new RuntimeException("生产订单不存在!"); |
|||
} |
|||
|
|||
if("0".equals(inData.getTransNo())){ |
|||
// 公共参数 |
|||
String site = inData.getSite(); |
|||
String wareHouseId = inData.getWarehouseID(); |
|||
String transTypeDb = "SR"; |
|||
String transDate = DateUtil.getStringDate(inData.getTransDate(),"yyyy-MM-dd"); |
|||
String userId = inData.getEnterBy(); |
|||
String receiver = inData.getReceiver(); |
|||
String partnerType = ""; |
|||
String partnerID = ""; |
|||
String remark=""; |
|||
String orderNo=inData.getOrderRef1(); |
|||
String projectID=""; |
|||
List<Object> params = new ArrayList<>(); |
|||
params.add(site); |
|||
params.add(wareHouseId); |
|||
params.add(transTypeDb); |
|||
params.add(transDate); |
|||
params.add(userId); |
|||
params.add(receiver); |
|||
params.add(partnerType); |
|||
params.add(partnerID); |
|||
params.add(remark); |
|||
params.add(orderNo); |
|||
params.add(projectID); |
|||
// 执行方法 |
|||
List<Map<String, Object>> resultList = procedureDao.getProcedureData("LNJ_Create_TransHeader", params); |
|||
String code = String.valueOf(resultList.get(0).get("result_code")); |
|||
if ("400".equalsIgnoreCase(code)) { |
|||
String msg = String.valueOf(resultList.get(0).get("result_msg")); |
|||
throw new RuntimeException(msg); |
|||
} |
|||
return String.valueOf(resultList.get(0).get("result_msg")); |
|||
|
|||
}else { |
|||
List<TransDetailData> detailList= productionStockMapper.searchTransDetail(inData); |
|||
if(detailList.size()>0){ |
|||
throw new RuntimeException("入库单有明细记录无法修改"); |
|||
} |
|||
List<TransDetailsubCachData> searchTransDetailsubCachData= productionStockMapper.searchTransDetailsubCachData(inData); |
|||
if(searchTransDetailsubCachData.size()>0){ |
|||
throw new RuntimeException("入库单有扫描标签记录无法修改"); |
|||
} |
|||
// if(inData.getPartnerID()!=null&&!"".equals(inData.getPartnerID())){ |
|||
// Supplier checkSupplier=new Supplier(); |
|||
// checkSupplier.setSite(inData.getSite()); |
|||
// checkSupplier.setActive("Y"); |
|||
// checkSupplier.setSupplierID(inData.getPartnerID()); |
|||
// List<Supplier> checkSupplierList=normalSearchMapper.getSupplierListForSearch(checkSupplier); |
|||
// if(checkSupplierList.size()==0){ |
|||
// throw new RuntimeException("供应商不可用或者不存在"); |
|||
// } |
|||
// } |
|||
SysUserEntity sysUserEntity=new SysUserEntity(); |
|||
sysUserEntity.setUsername(inData.getReceiver()); |
|||
List<SysUserEntity> getUserListForSearch=normalSearchMapper.getUserListForSearch(sysUserEntity); |
|||
if(getUserListForSearch.size()==0){ |
|||
throw new RuntimeException("经手人不可用或者不存在"); |
|||
} |
|||
productionStockMapper.updateTransHeader(inData); |
|||
return inData.getTransNo(); |
|||
} |
|||
} |
|||
|
|||
|
|||
@Override |
|||
public TransHeaderData searchTransHeaderData(TransHeaderData inData){ |
|||
return productionStockMapper.searchTransHeaderData(inData); |
|||
|
|||
} |
|||
|
|||
@Override |
|||
public List<TransDetailsubCachData> searchTransDetailsubCachData(TransHeaderData inData){ |
|||
return productionStockMapper.searchTransDetailsubCachData(inData); |
|||
|
|||
} |
|||
|
|||
@Override |
|||
@Transactional |
|||
public String saveStockCach(TransDetailsubCachData inData){ |
|||
TransHeaderData searchData=new TransHeaderData(); |
|||
searchData.setSite(inData.getSite()); |
|||
searchData.setTransNo(inData.getTransNo()); |
|||
TransHeaderData transHeaderData=productionStockMapper.searchTransHeaderData(searchData); |
|||
if(transHeaderData==null){ |
|||
throw new RuntimeException("入库单号有误!"); |
|||
} |
|||
// List<InventoryStockRoll> InventoryStockRollList = inventoryStockRollService.lambdaQuery() |
|||
// .eq(InventoryStockRoll::getSite, inData.getSite()).gt(InventoryStockRoll::getQtyOnHand,0) |
|||
// .eq(InventoryStockRoll::getRollNo,inData.getRollNo()).list(); |
|||
// if(InventoryStockRollList.size()==0){ |
|||
// throw new RuntimeException("卷号不存在或者不在库!"); |
|||
// } |
|||
SoFinalRollOutData getFinalRoll=productionStockMapper.getFinalRoll(inData.getSite(),inData.getRollNo()); |
|||
if(getFinalRoll==null){ |
|||
throw new RuntimeException("卷号不存在!"); |
|||
} |
|||
if(getFinalRoll.getStatusCode()!=0){ |
|||
throw new RuntimeException("卷状态不为已创建无法入库!"); |
|||
} |
|||
ShopOrderVo shopOrder=new ShopOrderVo(); |
|||
shopOrder.setSite(inData.getSite()); |
|||
shopOrder.setOrderNo(inData.getOrderNo()); |
|||
List<ShopOrderVo> searchShopOrder = shopOrderMapper.selectShopOrderList(shopOrder); |
|||
if(searchShopOrder.size()==0){ |
|||
throw new RuntimeException("生产订单不存在!"); |
|||
} |
|||
if (!getFinalRoll.getOrderNo().equals(searchShopOrder.get(0).getOrderNo())) { |
|||
throw new RuntimeException("该卷不属于入库单所选的生产订单!"); |
|||
} |
|||
// if (!getFinalRoll.getPartNo().equals(searchShopOrder.get(0).getPartNo())) { |
|||
// throw new RuntimeException("卷的物料与生产订单不符!"); |
|||
// } |
|||
|
|||
SysUserEntity sysUserEntity = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); |
|||
List<TransDetailSubData> searchTransDetailSub=productionStockMapper.checkTransDetailSubIsScan(inData.getSite(),inData.getRollNo()); |
|||
if(searchTransDetailSub.size()>0){ |
|||
throw new RuntimeException("该卷号已被入库单号:"+searchTransDetailSub.get(0).getTransNo()+"扫描进缓存,无法再次扫描!"); |
|||
} |
|||
|
|||
|
|||
TransDetailsubCachData saveData=new TransDetailsubCachData(); |
|||
saveData.setSite(inData.getSite()); |
|||
saveData.setTransNo(inData.getTransNo()); |
|||
saveData.setPartNo(getFinalRoll.getPartNo()); |
|||
saveData.setRollNo(getFinalRoll.getFinalRollNo()); |
|||
saveData.setRollQty(new BigDecimal(getFinalRoll.getRollQty())); |
|||
saveData.setBatchNo(inData.getOrderNo()+ DateUtil.getStringDate(new Date(),"yyyyMMdd")); |
|||
saveData.setLocationID(inData.getLocationID()); |
|||
saveData.setManufactureDate(getFinalRoll.getCreatedDate()); |
|||
saveData.setExpiredDate(null); |
|||
saveData.setEnterBy(sysUserEntity.getUsername()); |
|||
productionStockMapper.saveIssureCach(saveData); |
|||
String reStr=""; |
|||
return reStr; |
|||
} |
|||
@Override |
|||
public void deleteSubCach(TransDetailsubCachData inData){ |
|||
productionStockMapper.deleteSubCach(inData); |
|||
} |
|||
|
|||
@Override |
|||
public void deleteTransHeaderData(TransHeaderData inData){ |
|||
List<TransDetailData> detailList= productionStockMapper.searchTransDetail(inData); |
|||
if(detailList.size()>0){ |
|||
throw new RuntimeException("入库单有明细记录无法删除"); |
|||
} |
|||
List<TransDetailsubCachData> searchTransDetailsubCachData= productionStockMapper.searchTransDetailsubCachData(inData); |
|||
if(searchTransDetailsubCachData.size()>0){ |
|||
throw new RuntimeException("入库单有扫描标签记录无法删除"); |
|||
} |
|||
productionStockMapper.deleteTransHeaderData(inData); |
|||
} |
|||
|
|||
|
|||
@Override |
|||
@Transactional |
|||
public void finalSaveTransHeaderDetail(TransHeaderData inData){ |
|||
SysUserEntity sysUserEntity = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); |
|||
String userName=sysUserEntity.getUsername(); |
|||
inData.setEnterName(userName); |
|||
// |
|||
List<TransDetailData> transDetailData=productionStockMapper.getDetailDataByCach(inData); |
|||
if(transDetailData.size()==0){ |
|||
throw new RuntimeException("没有缓存卷需要保存"); |
|||
} |
|||
for (int i = 0; i < transDetailData.size(); i++) { |
|||
Double getNextTransHeaderSeqNo=productionStockMapper.getNextTransHeaderSeqNo(inData); |
|||
transDetailData.get(i).setItemNo(getNextTransHeaderSeqNo); |
|||
productionStockMapper.saveTransDetailData(transDetailData.get(i)); |
|||
} |
|||
TransHeaderData getHeader= productionStockMapper.searchTransHeaderData(inData); |
|||
List<TransDetailsubCachData> subData=productionStockMapper.searchTransDetailsubCachData(inData); |
|||
List<TransDetailSubData> inList=new ArrayList<>(); |
|||
for (int i = 0; i < transDetailData.size(); i++) { |
|||
Double seqNo=0.0; |
|||
for (int j = 0; j <subData.size() ; j++) { |
|||
if (transDetailData.get(i).getPartNo().equals(subData.get(j).getPartNo())&& |
|||
transDetailData.get(i).getLocationID().equals(subData.get(j).getLocationID())&& |
|||
transDetailData.get(i).getBatchNo().equals(subData.get(j).getBatchNo()) && |
|||
transDetailData.get(i).getManufactureDate().equals(subData.get(j).getManufactureDate()) ){ |
|||
seqNo=seqNo+1.0; |
|||
TransDetailSubData transDetailSubData=new TransDetailSubData(); |
|||
transDetailSubData.setTransNo(transDetailData.get(i).getTransNo()); |
|||
transDetailSubData.setSite(transDetailData.get(i).getSite()); |
|||
transDetailSubData.setItemNo(transDetailData.get(i).getItemNo().floatValue()); |
|||
transDetailSubData.setSeqNo(seqNo.floatValue()); |
|||
transDetailSubData.setLocationID(transDetailData.get(i).getLocationID()); |
|||
transDetailSubData.setBatchNo(transDetailData.get(i).getBatchNo()); |
|||
transDetailSubData.setRollNo(subData.get(j).getRollNo()); |
|||
transDetailSubData.setRollQty(subData.get(j).getRollQty()); |
|||
transDetailSubData.setOrderRef1(getHeader.getOrderRef1()); |
|||
inList.add(transDetailSubData); |
|||
productionStockMapper.updateFinalRollStatus(transDetailSubData.getSite(),transDetailSubData.getRollNo(),1,"Stocked"); |
|||
} |
|||
} |
|||
} |
|||
|
|||
productionStockMapper.batchInsertTransDetailSub(inList); |
|||
productionStockMapper.deleteTransCach(inData); |
|||
} |
|||
} |
|||
@ -0,0 +1,38 @@ |
|||
package com.spring.modules.material.service; |
|||
|
|||
import com.spring.common.utils.PageUtils; |
|||
import com.spring.modules.material.data.*; |
|||
|
|||
import java.util.List; |
|||
|
|||
public interface ProductionStockService { |
|||
PageUtils searchTransHeader(TransHeaderData data); |
|||
|
|||
List<TransDetailData> searchTransDetail(TransHeaderData data); |
|||
|
|||
List<TransDetailSubData> searchTransDetailSub(TransHeaderData data); |
|||
|
|||
List<WareHouseSearchOutData> getWareHouseList(WareHouseSearchOutData inData); |
|||
|
|||
String saveTransHeaderData(TransHeaderData data); |
|||
|
|||
/** |
|||
* @Description TODO |
|||
* @Title searchTransDetail |
|||
* @param inData |
|||
* @author rq |
|||
* @date 2024/6/4 11:34 |
|||
* @return TransDetailData |
|||
* @throw |
|||
*/ |
|||
TransHeaderData searchTransHeaderData(TransHeaderData inData); |
|||
|
|||
List<TransDetailsubCachData> searchTransDetailsubCachData(TransHeaderData inData); |
|||
|
|||
String saveStockCach(TransDetailsubCachData data); |
|||
|
|||
void finalSaveTransHeaderDetail(TransHeaderData inData); |
|||
|
|||
void deleteSubCach(TransDetailsubCachData data); |
|||
void deleteTransHeaderData(TransHeaderData inData); |
|||
} |
|||
@ -0,0 +1,166 @@ |
|||
package com.spring.modules.production.entity; |
|||
|
|||
import org.apache.ibatis.type.Alias; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
|
|||
import java.util.Date; |
|||
|
|||
@Alias("SoFinalRollOutData") |
|||
public class SoFinalRollOutData { |
|||
/** |
|||
* |
|||
*/ |
|||
private Integer id; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private String site; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private String orderNo; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private String partNo; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private String seqNo; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private String finalRollNo; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private Integer rollQty; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private Integer statusCode; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private String status; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private String createdBy; |
|||
|
|||
/** |
|||
* |
|||
*/ |
|||
private Date createdDate; |
|||
|
|||
/** |
|||
* 标签使用的日期 |
|||
*/ |
|||
private Date labelDate; |
|||
|
|||
public Integer getId() { |
|||
return id; |
|||
} |
|||
|
|||
public void setId(Integer id) { |
|||
this.id = id; |
|||
} |
|||
|
|||
public String getSite() { |
|||
return site; |
|||
} |
|||
|
|||
public void setSite(String site) { |
|||
this.site = site; |
|||
} |
|||
|
|||
public String getOrderNo() { |
|||
return orderNo; |
|||
} |
|||
|
|||
public void setOrderNo(String orderNo) { |
|||
this.orderNo = orderNo; |
|||
} |
|||
|
|||
public String getPartNo() { |
|||
return partNo; |
|||
} |
|||
|
|||
public void setPartNo(String partNo) { |
|||
this.partNo = partNo; |
|||
} |
|||
|
|||
public String getSeqNo() { |
|||
return seqNo; |
|||
} |
|||
|
|||
public void setSeqNo(String seqNo) { |
|||
this.seqNo = seqNo; |
|||
} |
|||
|
|||
public String getFinalRollNo() { |
|||
return finalRollNo; |
|||
} |
|||
|
|||
public void setFinalRollNo(String finalRollNo) { |
|||
this.finalRollNo = finalRollNo; |
|||
} |
|||
|
|||
public Integer getRollQty() { |
|||
return rollQty; |
|||
} |
|||
|
|||
public void setRollQty(Integer rollQty) { |
|||
this.rollQty = rollQty; |
|||
} |
|||
|
|||
public Integer getStatusCode() { |
|||
return statusCode; |
|||
} |
|||
|
|||
public void setStatusCode(Integer statusCode) { |
|||
this.statusCode = statusCode; |
|||
} |
|||
|
|||
public String getStatus() { |
|||
return status; |
|||
} |
|||
|
|||
public void setStatus(String status) { |
|||
this.status = status; |
|||
} |
|||
|
|||
public String getCreatedBy() { |
|||
return createdBy; |
|||
} |
|||
|
|||
public void setCreatedBy(String createdBy) { |
|||
this.createdBy = createdBy; |
|||
} |
|||
|
|||
public Date getCreatedDate() { |
|||
return createdDate; |
|||
} |
|||
|
|||
public void setCreatedDate(Date createdDate) { |
|||
this.createdDate = createdDate; |
|||
} |
|||
|
|||
public Date getLabelDate() { |
|||
return labelDate; |
|||
} |
|||
|
|||
public void setLabelDate(Date labelDate) { |
|||
this.labelDate = labelDate; |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,143 @@ |
|||
<?xml version="1.0" encoding="UTF-8" ?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > |
|||
<mapper namespace="com.spring.modules.material.dao.ProductionStockMapper"> |
|||
<select id="searchTransHeader" parameterType="TransHeaderData" resultType="TransHeaderData"> |
|||
SELECT |
|||
TransNo,Site,WarehouseID,TransDate,TransType_DB transTypeDb,TransType,UserName,Receiver,TransYear,TransMonth,PartnerID,PartnerName, |
|||
PartnerType,AuthorizeFlag,AuthorizeDate,Authorizor,TransferFlag,TransferDate,TransferGuys,VoucherDate,ProjectID, |
|||
ProjectName,EnterDate,Remark,UseLocation,OrderRef1,LinkOrderFlag,DelAddID,Status,UserName EnterBy,dbo.get_user_display(UserName) enterName |
|||
,dbo.get_user_display(Receiver) ReceiverName |
|||
FROM TransHeader |
|||
<where> |
|||
site = #{query.site} |
|||
<if test = "query.orderRef1 != null and query.orderRef1 != ''"> |
|||
AND OrderRef1 like #{query.orderRef1} |
|||
</if> |
|||
|
|||
<if test = "query.transTypeDb != null and query.transTypeDb != ''"> |
|||
AND TransType_DB = #{query.transTypeDb} |
|||
</if> |
|||
<if test = "query.startDate != null and query.startDate != ''"> |
|||
AND TransDate >= #{query.startDate} |
|||
</if> |
|||
<if test = "query.endDate != null and query.endDate != ''"> |
|||
AND #{query.endDate}>=TransDate |
|||
</if> |
|||
</where> |
|||
|
|||
</select> |
|||
|
|||
<select id="searchTransDetail" parameterType="TransHeaderData" resultType="TransDetailData"> |
|||
SELECT |
|||
TransNo,Site,ItemNo,PartNo,LocationID,TransQty,Direction,BatchNo,OrderRef1, |
|||
OrderRef2,Remark,ManufactureDate,ExpiredDate,TransQty2, |
|||
wdr_no,enterDate,enterBy,dbo.get_part_desc(Site,PartNo) partDesc,dbo.get_user_display(enterBy) enterName |
|||
FROM TransDetail |
|||
where site=#{site} and TransNo=#{transNo} |
|||
</select> |
|||
|
|||
<select id="searchTransDetailSub" parameterType="TransHeaderData" resultType="TransDetailSubData"> |
|||
SELECT |
|||
a.TransNo,a.Site,a.SeqNo,a.itemNo,a.LocationID,a.BatchNo,a.BoxNo,a.RollNo,a.RollQty,a.orderRef1,a.orderRef2, |
|||
a.remark,b.EnterDate,b.enterBy,dbo.get_user_display(b.enterBy) enterName,b.ManufactureDate,b.ExpiredDate |
|||
FROM TransDetailsub a left join TransDetail b on a.Site=b.site and a.TransNo=b.TransNo and a.itemNo=b.ItemNo |
|||
where a.site=#{site} and a.TransNo=#{transNo} |
|||
</select> |
|||
|
|||
<select id="getWareHouseList" parameterType="WareHouseSearchOutData" resultType="WareHouseSearchOutData"> |
|||
SELECT |
|||
site,warehouse_id wareHouseId,warehouse_name wareHouseName |
|||
FROM warehouse |
|||
where site=#{site} and active='Y' |
|||
</select> |
|||
|
|||
<select id="searchTransHeaderData" parameterType="TransHeaderData" resultType="TransHeaderData"> |
|||
SELECT top 1 |
|||
TransNo,Site,WarehouseID,TransDate,Receiver,PartnerID,PartnerName, |
|||
PartnerType,AuthorizeFlag,AuthorizeDate,Authorizor,TransferFlag,TransferDate,TransferGuys,VoucherDate,ProjectID, |
|||
ProjectName,EnterDate,Remark,UseLocation,OrderRef1,LinkOrderFlag,DelAddID,Status,dbo.get_user_display(Receiver) receiverName |
|||
FROM TransHeader |
|||
where site=#{site} and TransNo=#{transNo} |
|||
</select> |
|||
|
|||
|
|||
|
|||
<select id="searchTransDetailsubCachData" parameterType="TransHeaderData" resultType="TransDetailsubCachData"> |
|||
SELECT |
|||
Site,TransNo,PartNo,RollNo,RollQty,BatchNo,wdrNo,LocationID,ManufactureDate,ExpiredDate,enterBy,enterDate |
|||
,id,dbo.get_part_desc(Site,PartNo) partDesc,dbo.get_user_display(enterBy) enterByName |
|||
FROM TransDetailsub_cach |
|||
where site=#{site} and TransNo=#{transNo} |
|||
</select> |
|||
|
|||
<insert id="saveIssureCach" parameterType="TransDetailsubCachData" > |
|||
insert into TransDetailsub_cach(Site,TransNo,PartNo,RollNo,RollQty,BatchNo,wdrNo,LocationID,ManufactureDate, |
|||
ExpiredDate,enterBy,enterDate) |
|||
values(#{site},#{transNo},#{partNo},#{rollNo},#{rollQty},#{batchNo},#{wdrNo},#{locationID},#{manufactureDate}, |
|||
#{expiredDate},#{enterBy},GetDate()) |
|||
</insert> |
|||
|
|||
<select id="getDetailDataByCach" resultType="TransDetailData"> |
|||
|
|||
SELECT |
|||
a.site,a.TransNo,a.PartNo,a.LocationID,sum(a.RollQty) as TransQty,'-' as Direction,a.BatchNo,b.OrderRef1,'N' as VitualPartFlag,a.ManufactureDate,a.ExpiredDate, |
|||
0 as StandCost,0 as ActualCost,0 as Price,0 as Freight,0 as Duty,sum(a.RollQty) as TransQty2,enterBy,wdrNo |
|||
FROM TransDetailsub_cach a left join TransHeader b on a.Site=b.Site and a.TransNo=b.transNo |
|||
WHERE a.site=#{site} and a.TransNo=#{transNo} |
|||
GROUP BY a.site,a.TransNo,a.PartNo,a.LocationID,a.BatchNo,b.OrderRef1,a.ManufactureDate,a.ExpiredDate,A.enterBy,a.wdrNo |
|||
|
|||
|
|||
</select> |
|||
|
|||
<select id="getNextTransHeaderSeqNo" resultType="Double"> |
|||
select isnull(max(itemNo),0)+1 |
|||
from TransDetail where TransNo=#{transNo} and site=#{site} |
|||
</select> |
|||
|
|||
<insert id="saveTransDetailData" parameterType="TransDetailData" > |
|||
insert into TransDetail(TransNo,Site,ItemNo,PartNo,LocationID,TransQty,Direction,BatchNo,StandCost, |
|||
ActualCost,Price,Freight,Duty,OrderRef1,VitualPartFlag,ManufactureDate, |
|||
ExpiredDate,TransQty2,wdr_no,enterDate,enterBy) |
|||
values(#{transNo},#{site},#{itemNo,jdbcType=DOUBLE},#{partNo},#{locationID},#{transQty},#{direction},#{batchNo},#{standCost}, |
|||
#{actualCost},#{price},#{freight},#{duty},#{orderRef1},#{vitualPartFlag},#{manufactureDate}, |
|||
#{expiredDate},#{transQty2},#{wdrNo},GetDate(),#{enterBy}) |
|||
</insert> |
|||
|
|||
|
|||
<insert id="batchInsertTransDetailSub"> |
|||
insert into TransDetailsub |
|||
(TransNo,Site,SeqNo,itemNo,LocationID,BatchNo,BoxNo,RollNo,RollQty,orderRef1) VALUES |
|||
<foreach collection="list" item="item" index="index" separator=","> |
|||
(#{item.transNo}, #{item.site}, #{item.seqNo}, #{item.itemNo}, #{item.locationID}, #{item.batchNo},'', #{item.rollNo,jdbcType=VARCHAR}, #{item.rollQty}, #{item.orderRef1}) |
|||
</foreach> |
|||
</insert> |
|||
|
|||
<delete id="deleteTransCach"> |
|||
delete from TransDetailsub_cach where TransNo=#{transNo} and site=#{site} |
|||
</delete> |
|||
|
|||
<select id="deleteSubCach" > |
|||
delete from TransDetailsub_cach where id=#{id} |
|||
</select> |
|||
|
|||
<delete id="deleteTransHeaderData"> |
|||
delete from transHeader where site=#{site} and transNo=#{transNo} |
|||
</delete> |
|||
|
|||
<update id="updateTransHeader"> |
|||
update transHeader set WarehouseID=#{warehouseID} ,PartnerID=#{partnerID},Receiver=#{receiver},orderRef1=#{orderRef1},transDate=#{transDate} where site=#{site} and transNo=#{transNo} |
|||
</update> |
|||
|
|||
<select id="checkTransDetailSubIsScan" resultType="TransDetailSubData"> |
|||
select site,transNo from TransDetailsub_cach where site=#{site} and RollNo=#{rollNo} |
|||
</select> |
|||
<select id="getFinalRoll" resultType="SoFinalRollOutData"> |
|||
select id,site,order_no,part_no,seq_no,final_roll_no,roll_qty,status_code,status,created_by,created_date,label_date |
|||
from so_final_roll where site=#{site} and final_roll_no=#{rollNo} |
|||
</select> |
|||
|
|||
<update id="updateFinalRollStatus"> |
|||
update so_final_roll set status_code=#{statusCode,jdbcType=INTEGER},status=#{status} |
|||
where site=#{site} and final_roll_no=#{rollNo} |
|||
</update> |
|||
</mapper> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue