优化序列号模块

This commit is contained in:
季圣华
2021-10-04 23:47:06 +08:00
parent 89565ec769
commit f1b119a6a9
12 changed files with 202 additions and 276 deletions

View File

@@ -36,29 +36,6 @@ public class SerialNumberController {
@Resource
private SerialNumberService serialNumberService;
/**
* create by: cjl
* description:
* 检查序列号是否存在
* create time: 2019/1/22 11:02
* @Param: id
 * @Param: materialName
 * @Param: serialNumber
 * @Param: request
* @return java.lang.Object
*/
@PostMapping("/serialNumber/checkIsExist")
@ResponseBody
public Object checkIsExist(@RequestParam("id") Long id, @RequestParam("materialName") String materialName,
@RequestParam("serialNumber") String serialNumber, HttpServletRequest request) throws Exception{
JSONObject result = ExceptionConstants.standardSuccess();
if(StringUtil.isEmpty(serialNumber)){
throw new BusinessParamCheckingException(ExceptionConstants.SERIAL_NUMBERE_NOT_BE_EMPTY_CODE,
ExceptionConstants.SERIAL_NUMBERE_NOT_BE_EMPTY_MSG);
}
serialNumberService.checkIsExist(id, materialName, serialNumber);
return result;
}
/**
* create by: cjl

View File

@@ -25,7 +25,9 @@ public class SerialNumber {
private Long updater;
private Long depotHeadId;
private String inBillNo;
private String outBillNo;
private Long tenantId;
@@ -117,12 +119,20 @@ public class SerialNumber {
this.updater = updater;
}
public Long getDepotHeadId() {
return depotHeadId;
public String getInBillNo() {
return inBillNo;
}
public void setDepotHeadId(Long depotHeadId) {
this.depotHeadId = depotHeadId;
public void setInBillNo(String inBillNo) {
this.inBillNo = inBillNo == null ? null : inBillNo.trim();
}
public String getOutBillNo() {
return outBillNo;
}
public void setOutBillNo(String outBillNo) {
this.outBillNo = outBillNo == null ? null : outBillNo.trim();
}
public Long getTenantId() {

View File

@@ -805,63 +805,143 @@ public class SerialNumberExample {
return (Criteria) this;
}
public Criteria andDepotHeadIdIsNull() {
addCriterion("depot_head_id is null");
public Criteria andInBillNoIsNull() {
addCriterion("in_bill_no is null");
return (Criteria) this;
}
public Criteria andDepotHeadIdIsNotNull() {
addCriterion("depot_head_id is not null");
public Criteria andInBillNoIsNotNull() {
addCriterion("in_bill_no is not null");
return (Criteria) this;
}
public Criteria andDepotHeadIdEqualTo(Long value) {
addCriterion("depot_head_id =", value, "depotHeadId");
public Criteria andInBillNoEqualTo(String value) {
addCriterion("in_bill_no =", value, "inBillNo");
return (Criteria) this;
}
public Criteria andDepotHeadIdNotEqualTo(Long value) {
addCriterion("depot_head_id <>", value, "depotHeadId");
public Criteria andInBillNoNotEqualTo(String value) {
addCriterion("in_bill_no <>", value, "inBillNo");
return (Criteria) this;
}
public Criteria andDepotHeadIdGreaterThan(Long value) {
addCriterion("depot_head_id >", value, "depotHeadId");
public Criteria andInBillNoGreaterThan(String value) {
addCriterion("in_bill_no >", value, "inBillNo");
return (Criteria) this;
}
public Criteria andDepotHeadIdGreaterThanOrEqualTo(Long value) {
addCriterion("depot_head_id >=", value, "depotHeadId");
public Criteria andInBillNoGreaterThanOrEqualTo(String value) {
addCriterion("in_bill_no >=", value, "inBillNo");
return (Criteria) this;
}
public Criteria andDepotHeadIdLessThan(Long value) {
addCriterion("depot_head_id <", value, "depotHeadId");
public Criteria andInBillNoLessThan(String value) {
addCriterion("in_bill_no <", value, "inBillNo");
return (Criteria) this;
}
public Criteria andDepotHeadIdLessThanOrEqualTo(Long value) {
addCriterion("depot_head_id <=", value, "depotHeadId");
public Criteria andInBillNoLessThanOrEqualTo(String value) {
addCriterion("in_bill_no <=", value, "inBillNo");
return (Criteria) this;
}
public Criteria andDepotHeadIdIn(List<Long> values) {
addCriterion("depot_head_id in", values, "depotHeadId");
public Criteria andInBillNoLike(String value) {
addCriterion("in_bill_no like", value, "inBillNo");
return (Criteria) this;
}
public Criteria andDepotHeadIdNotIn(List<Long> values) {
addCriterion("depot_head_id not in", values, "depotHeadId");
public Criteria andInBillNoNotLike(String value) {
addCriterion("in_bill_no not like", value, "inBillNo");
return (Criteria) this;
}
public Criteria andDepotHeadIdBetween(Long value1, Long value2) {
addCriterion("depot_head_id between", value1, value2, "depotHeadId");
public Criteria andInBillNoIn(List<String> values) {
addCriterion("in_bill_no in", values, "inBillNo");
return (Criteria) this;
}
public Criteria andDepotHeadIdNotBetween(Long value1, Long value2) {
addCriterion("depot_head_id not between", value1, value2, "depotHeadId");
public Criteria andInBillNoNotIn(List<String> values) {
addCriterion("in_bill_no not in", values, "inBillNo");
return (Criteria) this;
}
public Criteria andInBillNoBetween(String value1, String value2) {
addCriterion("in_bill_no between", value1, value2, "inBillNo");
return (Criteria) this;
}
public Criteria andInBillNoNotBetween(String value1, String value2) {
addCriterion("in_bill_no not between", value1, value2, "inBillNo");
return (Criteria) this;
}
public Criteria andOutBillNoIsNull() {
addCriterion("out_bill_no is null");
return (Criteria) this;
}
public Criteria andOutBillNoIsNotNull() {
addCriterion("out_bill_no is not null");
return (Criteria) this;
}
public Criteria andOutBillNoEqualTo(String value) {
addCriterion("out_bill_no =", value, "outBillNo");
return (Criteria) this;
}
public Criteria andOutBillNoNotEqualTo(String value) {
addCriterion("out_bill_no <>", value, "outBillNo");
return (Criteria) this;
}
public Criteria andOutBillNoGreaterThan(String value) {
addCriterion("out_bill_no >", value, "outBillNo");
return (Criteria) this;
}
public Criteria andOutBillNoGreaterThanOrEqualTo(String value) {
addCriterion("out_bill_no >=", value, "outBillNo");
return (Criteria) this;
}
public Criteria andOutBillNoLessThan(String value) {
addCriterion("out_bill_no <", value, "outBillNo");
return (Criteria) this;
}
public Criteria andOutBillNoLessThanOrEqualTo(String value) {
addCriterion("out_bill_no <=", value, "outBillNo");
return (Criteria) this;
}
public Criteria andOutBillNoLike(String value) {
addCriterion("out_bill_no like", value, "outBillNo");
return (Criteria) this;
}
public Criteria andOutBillNoNotLike(String value) {
addCriterion("out_bill_no not like", value, "outBillNo");
return (Criteria) this;
}
public Criteria andOutBillNoIn(List<String> values) {
addCriterion("out_bill_no in", values, "outBillNo");
return (Criteria) this;
}
public Criteria andOutBillNoNotIn(List<String> values) {
addCriterion("out_bill_no not in", values, "outBillNo");
return (Criteria) this;
}
public Criteria andOutBillNoBetween(String value1, String value2) {
addCriterion("out_bill_no between", value1, value2, "outBillNo");
return (Criteria) this;
}
public Criteria andOutBillNoNotBetween(String value1, String value2) {
addCriterion("out_bill_no not between", value1, value2, "outBillNo");
return (Criteria) this;
}

View File

@@ -14,22 +14,6 @@ import java.util.List;
* @Date: 2019/1/21 17:09
*/
public interface SerialNumberMapperEx {
/**
* 根据条件查询序列号列表
* */
List<SerialNumberEx> selectByConditionSerialNumber(@Param("serialNumber") String serialNumber, @Param("materialName") String materialName,@Param("offset") Integer offset,@Param("rows") Integer rows);
/**
* 根据条件查询序列号数量
* */
Long countSerialNumber(@Param("serialNumber")String serialNumber,@Param("materialName")String materialName);
/**
* 通过id查询序列号复合信息
* */
List<SerialNumberEx> findById(Long id);
/**
* 通过序列号查询序列号实体信息
* */
List<SerialNumberEx> findBySerialNumber(@Param("serialNumber") String serialNumber);
/**
* 新增序列号信息
* */
@@ -43,20 +27,16 @@ public interface SerialNumberMapperEx {
* 未删除为卖出的视为有效
* */
int findSerialNumberByMaterialId(@Param("materialId") Long materialId);
/**
* 查询符合条件的序列号数量
* */
int countSerialNumberByMaterialIdAndDepotheadId(@Param("materialId")Long materialId, @Param("depotHeadId")Long depotHeadId, @Param("isSell")String isSell);
/**
* 卖出: update jsh_serial_number set is_Sell='1' ,depothead_Id='depotheadId' where 1=1 and material_Id='materialId'
* and is_Sell !='1' and delete_Flag !='1' {limit 0count}
* */
int sellSerialNumber(@Param("materialId")Long materialId, @Param("depotHeadId")Long depotHeadId, @Param("snArray") String snArray[], @Param("updateTime") Date updateTime,@Param("updater") Long updater);
int sellSerialNumber(@Param("materialId")Long materialId, @Param("outBillNo")String outBillNo, @Param("snArray") String snArray[], @Param("updateTime") Date updateTime,@Param("updater") Long updater);
/**
* 赎回update jsh_serial_number set is_Sell='0',depothead_Id=null where 1=1 and material_Id='materialId'
* and depothead_Id='depotheadId' and is_Sell ='0' and delete_Flag !='1' {limit 0count}
* */
int cancelSerialNumber(@Param("materialId")Long materialId, @Param("depotHeadId")Long depotHeadId, @Param("count")Integer count, @Param("updateTime") Date updateTime,@Param("updater") Long updater);
int cancelSerialNumber(@Param("materialId")Long materialId, @Param("outBillNo")String outBillNo, @Param("count")Integer count, @Param("updateTime") Date updateTime,@Param("updater") Long updater);
/**
* 批量添加序列号
* */

View File

@@ -25,6 +25,8 @@ public class DepotHeadVo4List extends DepotHead{
private BigDecimal finishDebt;
private String depotHeadType;
public String getProjectName() {
return projectName;
}
@@ -96,4 +98,12 @@ public class DepotHeadVo4List extends DepotHead{
public void setFinishDebt(BigDecimal finishDebt) {
this.finishDebt = finishDebt;
}
public String getDepotHeadType() {
return depotHeadType;
}
public void setDepotHeadType(String depotHeadType) {
this.depotHeadType = depotHeadType;
}
}

View File

@@ -286,7 +286,7 @@ public class DepotHeadService {
if (depotItemList != null && depotItemList.size() > 0) {
for (DepotItem depotItem : depotItemList) {
//BasicNumber=OperNumber*ratio
serialNumberService.cancelSerialNumber(depotItem.getMaterialId(), depotItem.getHeaderId(), (depotItem.getBasicNumber() == null ? 0 : depotItem.getBasicNumber()).intValue(), userInfo);
serialNumberService.cancelSerialNumber(depotItem.getMaterialId(), depotHead.getNumber(), (depotItem.getBasicNumber() == null ? 0 : depotItem.getBasicNumber()).intValue(), userInfo);
}
}
}

View File

@@ -314,7 +314,7 @@ public class DepotItemService {
continue;
}
if(BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableSerialNumber())){
serialNumberService.cancelSerialNumber(depotItem.getMaterialId(),depotItem.getHeaderId(),
serialNumberService.cancelSerialNumber(depotItem.getMaterialId(),depotHead.getNumber(),
(depotItem.getBasicNumber()==null?0:depotItem.getBasicNumber()).intValue(), userInfo);
}
}
@@ -340,7 +340,7 @@ public class DepotItemService {
Long depotId = rowObj.getLong("depotId");
if(BusinessConstants.SUB_TYPE_PURCHASE.equals(depotHead.getSubType())||
BusinessConstants.SUB_TYPE_SALES_RETURN.equals(depotHead.getSubType())) {
serialNumberService.addSerialNumberByBill(materialExtend.getMaterialId(), depotId, depotItem.getSnList());
serialNumberService.addSerialNumberByBill(depotHead.getNumber(), materialExtend.getMaterialId(), depotId, depotItem.getSnList());
}
}
}
@@ -450,7 +450,7 @@ public class DepotItemService {
//判断商品是否开启序列号,开启的收回序列号,未开启的跳过
if(BusinessConstants.ENABLE_SERIAL_NUMBER_ENABLED.equals(material.getEnableSerialNumber())) {
//查询单据子表中开启序列号的数据列表
serialNumberService.checkAndUpdateSerialNumber(depotItem, userInfo, StringUtil.toNull(depotItem.getSnList()));
serialNumberService.checkAndUpdateSerialNumber(depotItem, depotHead.getNumber(), userInfo, StringUtil.toNull(depotItem.getSnList()));
}
}
}

View File

@@ -86,24 +86,12 @@ public class SerialNumberService {
}
public List<SerialNumberEx> select(String serialNumber, String materialName, Integer offset, Integer rows)throws Exception {
List<SerialNumberEx> list=null;
try{
list=serialNumberMapperEx.selectByConditionSerialNumber(serialNumber, materialName,offset, rows);
}catch(Exception e){
JshException.readFail(logger, e);
}
return list;
return null;
}
public Long countSerialNumber(String serialNumber,String materialName)throws Exception {
Long result=null;
try{
result=serialNumberMapperEx.countSerialNumber(serialNumber, materialName);
}catch(Exception e){
JshException.readFail(logger, e);
}
return result;
return null;
}
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
@@ -201,72 +189,6 @@ public class SerialNumberService {
}
return list==null?0:list.size();
}
public List<SerialNumberEx> findById(Long id)throws Exception{
List<SerialNumberEx> list=null;
try{
list=serialNumberMapperEx.findById(id);
}catch(Exception e){
JshException.readFail(logger, e);
}
return list;
}
public void checkIsExist(Long id, String materialName, String serialNumber) throws Exception{
/**
* 商品名称不为空时,检查商品名称是否存在
* */
if(StringUtil.isNotEmpty(materialName)){
List<Material> mlist=null;
try{
mlist = materialMapperEx.findByMaterialName(materialName);
}catch(Exception e){
JshException.readFail(logger, e);
}
if(mlist==null||mlist.size()<1){
//商品名称不存在
throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_NOT_EXISTS_CODE,
ExceptionConstants.MATERIAL_NOT_EXISTS_MSG);
}else if(mlist.size()>1){
//商品信息不唯一
throw new BusinessRunTimeException(ExceptionConstants.MATERIAL_NOT_ONLY_CODE,
ExceptionConstants.MATERIAL_NOT_ONLY_MSG);
}
}
/***
* 判断序列号是否已存在
* */
List <SerialNumberEx> list=null;
try{
list = serialNumberMapperEx.findBySerialNumber(serialNumber);
}catch(Exception e){
JshException.readFail(logger, e);
}
if(list!=null&&list.size()>0){
if(list.size()>1){
//存在多个同名序列号
throw new BusinessRunTimeException(ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_CODE,
ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_MSG);
}else{
//存在一个序列号
if(id==null){
//新增,存在要添加的序列号
throw new BusinessRunTimeException(ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_CODE,
ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_MSG);
}
if(id.equals(list.get(0).getId())){
//修改的是同一条数据
}else{
//存在一条不同的序列号信息
throw new BusinessRunTimeException(ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_CODE,
ExceptionConstants.SERIAL_NUMBERE_ALREADY_EXISTS_MSG);
}
}
}
}
/**
* create by: cjl
* description:
@@ -341,9 +263,9 @@ public class SerialNumberService {
* @Param: List<DepotItem>
* @return void
*/
public void checkAndUpdateSerialNumber(DepotItem depotItem,User userInfo, String snList) throws Exception{
public void checkAndUpdateSerialNumber(DepotItem depotItem, String outBillNo,User userInfo, String snList) throws Exception{
if(depotItem!=null){
sellSerialNumber(depotItem.getMaterialId(),depotItem.getHeaderId(), snList,userInfo);
sellSerialNumber(depotItem.getMaterialId(), outBillNo, snList,userInfo);
}
}
/**
@@ -362,11 +284,11 @@ public class SerialNumberService {
* @return com.jsh.erp.datasource.entities.SerialNumberEx
*/
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public int sellSerialNumber(Long materialId, Long depotHeadId, String snList, User user) throws Exception{
public int sellSerialNumber(Long materialId, String outBillNo, String snList, User user) throws Exception{
int result=0;
try{
String [] snArray=snList.split(",");
result = serialNumberMapperEx.sellSerialNumber(materialId, depotHeadId, snArray, new Date(),user==null?null:user.getId());
result = serialNumberMapperEx.sellSerialNumber(materialId, outBillNo, snArray, new Date(),user==null?null:user.getId());
}catch(Exception e){
JshException.writeFail(logger, e);
}
@@ -385,10 +307,10 @@ public class SerialNumberService {
* @return com.jsh.erp.datasource.entities.SerialNumberEx
*/
@Transactional(value = "transactionManager", rollbackFor = Exception.class)
public int cancelSerialNumber(Long materialId, Long depotHeadId,int count,User user) throws Exception{
public int cancelSerialNumber(Long materialId, String outBillNo,int count,User user) throws Exception{
int result=0;
try{
result = serialNumberMapperEx.cancelSerialNumber(materialId,depotHeadId,count,new Date(),user==null?null:user.getId());
result = serialNumberMapperEx.cancelSerialNumber(materialId,outBillNo,count,new Date(),user==null?null:user.getId());
}catch(Exception e){
JshException.writeFail(logger, e);
}
@@ -470,7 +392,7 @@ public class SerialNumberService {
return count;
}
public void addSerialNumberByBill(Long materialId, Long depotId, String snList) throws Exception {
public void addSerialNumberByBill(String inBillNo, Long materialId, Long depotId, String snList) throws Exception {
//将中文的逗号批量替换为英文逗号
snList = snList.replaceAll("",",");
List<String> snArr = StringUtil.strToStringList(snList);
@@ -492,6 +414,7 @@ public class SerialNumberService {
User userInfo = userService.getCurrentUser();
serialNumber.setCreator(userInfo == null ? null : userInfo.getId());
serialNumber.setUpdater(userInfo == null ? null : userInfo.getId());
serialNumber.setInBillNo(inBillNo);
serialNumberMapper.insertSelective(serialNumber);
}
}