Browse Source

优化维修领料

master
fanzongzhe 11 months ago
parent
commit
5dedc84d55
  1. 6
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java
  2. 36
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairBillQuery.java
  3. 27
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairBillVo.java
  4. 3
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventoryBillInit.java
  5. 16
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/ConfirmDto.java
  6. 3
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetail.java
  7. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailSDto.java
  8. 2
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  9. 4
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.java
  10. 34
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.xml
  11. 20
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillRest.java
  12. 126
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java
  13. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoutbill/WmsOutBillService.java

6
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java

@ -127,4 +127,10 @@ public class AsBusrepairBill extends BaseEntity {
private String outRemarks;
@ApiModelProperty("商品登记备注")
private String registerRemarks;
@ApiModelProperty("维修状态(0未维修,1维修中,2维修完成)")
private Integer repairState;
@ApiModelProperty("维修工作状态(0未完成,1已完成)")
private Integer completeState;
@ApiModelProperty("出库确认备注")
private String outboundRemarks;
}

36
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairBillQuery.java

@ -0,0 +1,36 @@
package com.yxt.anrui.as.api.asbusrepairinventorybill;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/7/18 14:34
*/
@Data
public class AsBusrepairBillQuery implements Query {
private String repairState; //维修状态
private String billNo; //工单编号
private String billType; //工单类型
private String subject; //科目
private String customerName; //是否外出
private String vehMark; //车牌号
private String vinNo; //车架号
private String createTimeEnd; //进厂结束日期
private String createTimeStart; //进厂开始日期
private String completeState; //0未完成 1已完成
@ApiModelProperty("使用组织sid")
private String orgPath;
private String userSid;
@ApiModelProperty("菜单url")
private String menuUrl;
}

27
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairBillVo.java

@ -0,0 +1,27 @@
package com.yxt.anrui.as.api.asbusrepairinventorybill;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/7/18 14:26
*/
@Data
public class AsBusrepairBillVo {
private String repairState; //维修状态
private String billSid; //维修工单sid
private String billNo; //工单编号
private String billTypeValue; //工单类型
private String subjectValue; //科目
private String customerName; //是否外出
private String vehMark; //车牌号
private String vinNo; //车架号
private String isGoOut; //是否外出
private String mobile; //联系电话
private String entryTime; //进厂日期
}

3
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventoryBillInit.java

@ -60,7 +60,8 @@ public class AsBusrepairInventoryBillInit {
@ApiModelProperty("客户单位")
private String customerOrg;
private List<SitemsVo> sitemVoList = new ArrayList<>();
@ApiModelProperty("商品登记备注")
private String registerRemarks;
private List<AsBusrepairInventorybillDetailSDto> detailList = new ArrayList<>();
}

16
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/ConfirmDto.java

@ -0,0 +1,16 @@
package com.yxt.anrui.as.api.asbusrepairinventorybill;
import com.yxt.common.core.dto.Dto;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/7/18 16:48
*/
@Data
public class ConfirmDto implements Dto {
private String sid;
private String remarks;
}

3
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetail.java

@ -60,7 +60,8 @@ public class AsBusrepairInventorybillDetail extends BaseEntity {
private BigDecimal discountAmount;
@ApiModelProperty("金额(销售价-优惠金额)")
private BigDecimal amount;
@ApiModelProperty("库存数量")
private BigDecimal inventoryNum; //
@ApiModelProperty("科目sid")
private String subjectSid;

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailSDto.java

@ -71,4 +71,6 @@ public class AsBusrepairInventorybillDetailSDto {
@ApiModelProperty("领料人姓名")
private String operName;
private String remarks;
private String inventoryNum; //库存数量
}

2
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java

@ -1105,6 +1105,8 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
if (asBusrepairBill.getNodeCode() == 5 || asBusrepairBill.getNodeCode() == 4) {
nodeCode = 3;
nodeName = "维修";
asBusrepairBill.setCompleteState(0);
asBusrepairBill.setRepairState(1);
} else if (asBusrepairBill.getNodeCode() == 2) {
nodeCode = 1;
nodeName = "登记";

4
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.java

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.as.api.asbusrepairbill.AsBusrepairBill;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairBillVo;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybill;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybillVo;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairinventoryExportVo;
@ -35,4 +37,6 @@ public interface AsBusrepairInventorybillMapper extends BaseMapper<AsBusrepairIn
String selOutBoundCountBySitemSid(@Param("sourceBillSid")String sourceBillSid, @Param("busTypeKey")String busTypeKey, @Param("goodsID")String goodsID, @Param("sitemSid")String sitemSid);
List<AsBusrepairinventoryExportVo> exportExcel(@Param(Constants.WRAPPER)QueryWrapper<AsBusrepairInventorybill> qw);
IPage<AsBusrepairBillVo> listPage(IPage<AsBusrepairBill> page, @Param(Constants.WRAPPER) QueryWrapper<AsBusrepairBill> qw);
}

34
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.xml

@ -66,4 +66,38 @@
</where>
order by a.id desc
</select>
<select id="listPage" resultType="com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairBillVo">
SELECT
CASE
a.repairState
WHEN 0 THEN
'未维修'
WHEN 1 THEN
'维修中'
WHEN 2 THEN
'维修完成'
END AS repairState,
a.sid AS billSid,
a.billNo,
a.billType AS billTypeValue,
a.`subject` AS subjectValue,
a.customerName,
v.vehMark,
v.vinNo,
CASE
a.isGoOut
WHEN 1 THEN
'是'
WHEN 2 THEN
'否'
END AS isGoOut,
a.mobile,
a.entryTime
FROM
as_busrepair_bill AS a
LEFT JOIN as_busrepair_bill_vech AS v ON a.sid = v.billSid
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

20
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillRest.java

@ -36,13 +36,13 @@ public class AsBusrepairInventorybillRest {
return rb.success().setData(pv);
}
// @PostMapping("/listPage")
// @ApiOperation("维修领料列表")
// ResultBean<PagerVo<AsBusrepairInventorybillVo>> pageList(@RequestBody PagerQuery<AsBusrepairInventorybillQuery> pagerQuery) {
// ResultBean<PagerVo<AsBusrepairInventorybillVo>> rb = ResultBean.fireFail();
// PagerVo<AsBusrepairInventorybillVo> pv = asBusrepairInventorybillService.pageList(pagerQuery);
// return rb.success().setData(pv);
// }
@PostMapping("/listPage")
@ApiOperation("维修领料列表")
ResultBean<PagerVo<AsBusrepairBillVo>> listPage(@RequestBody PagerQuery<AsBusrepairBillQuery> pagerQuery) {
ResultBean<PagerVo<AsBusrepairBillVo>> rb = ResultBean.fireFail();
PagerVo<AsBusrepairBillVo> pv = asBusrepairInventorybillService.listPage(pagerQuery);
return rb.success().setData(pv);
}
@PostMapping("/saveOrUpdate")
@ApiOperation("保存或修改")
@ -62,6 +62,12 @@ public class AsBusrepairInventorybillRest {
return asBusrepairInventorybillService.newQuitBill(dto);
}
@PostMapping("/saveConfirm")
@ApiOperation("商品出库确认")
ResultBean saveConfirm(@RequestBody ConfirmDto dto) {
return asBusrepairInventorybillService.saveConfirm(dto);
}
@GetMapping("/details")
@ApiOperation("详情")
ResultBean<InventoryBillDetailsVo> details(@RequestParam("sid") String sid) {

126
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java

@ -1,12 +1,15 @@
package com.yxt.anrui.as.biz.asbusrepairinventorybill;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.as.api.asbusrepairbill.AsBusrepairBill;
import com.yxt.anrui.as.api.asbusrepairbill.AsBusrepairBillDetailsVo;
import com.yxt.anrui.as.api.asbusrepairbill.SitemVo;
import com.yxt.anrui.as.api.asbusrepairbillnode.AsBusrepairBillNode;
import com.yxt.anrui.as.api.asbusrepairinventorybill.*;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailSDto;
@ -16,6 +19,7 @@ import com.yxt.anrui.as.api.enums.AsBillTypeEnum;
import com.yxt.anrui.as.api.utils.AsRule;
import com.yxt.anrui.as.api.utils.domain.AsBillNo;
import com.yxt.anrui.as.biz.asbusrepairbill.AsBusrepairBillService;
import com.yxt.anrui.as.biz.asbusrepairbillnode.AsBusrepairBillNodeService;
import com.yxt.anrui.as.biz.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailService;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign;
@ -67,6 +71,9 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
private WmsInventoryFeign wmsInventoryFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private AsBusrepairBillNodeService asBusrepairBillNodeService;
/**
* 维修出/退库分页列表
*
@ -399,6 +406,9 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
if (StringUtils.isNotBlank(data.getCustomerOrg())) {
vo.setCustomerOrg(data.getCustomerOrg());
}
if (StringUtils.isNotBlank(data.getRegisterRemarks())) {
vo.setRegisterRemarks(data.getRegisterRemarks());
}
List<SitemVo> sitemVos = data.getSitemVos();
List<SitemsVo> sitemsVos = new ArrayList<>();
if (!sitemVos.isEmpty()) {
@ -428,7 +438,7 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
if (null != goodsDetail.getCount()) {
goodsDetailsVo.setOutboundCount(goodsDetail.getCount().toString());
}
goodsDetailsVo.setCount("");
goodsDetailsVo.setCount("0");
list.add(goodsDetailsVo);
}
vo.setDetailList(list);
@ -446,7 +456,7 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
public ResultBean<String> selOutBoundCountBySitemSid(String sourceBillSid, String busTypeKey, String goodsID, String sitemSid) {
ResultBean rb = ResultBean.fireFail();
String count = baseMapper.selOutBoundCountBySitemSid(sourceBillSid, busTypeKey, goodsID,sitemSid);
String count = baseMapper.selOutBoundCountBySitemSid(sourceBillSid, busTypeKey, goodsID, sitemSid);
return rb.success().setData(count);
}
@ -518,4 +528,116 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
List<AsBusrepairinventoryExportVo> list = baseMapper.exportExcel(qw);
return list;
}
public PagerVo<AsBusrepairBillVo> listPage(PagerQuery<AsBusrepairBillQuery> pagerQuery) {
AsBusrepairBillQuery query = pagerQuery.getParams();
QueryWrapper<AsBusrepairBill> qw = new QueryWrapper<>();
if (query != null) {
if (StringUtils.isNotBlank(query.getMenuUrl())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("a.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("a.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("a.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("a.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("a.createBySid", query.getUserSid());
} else {
PagerVo<AsBusrepairBillVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<AsBusrepairBillVo> p = new PagerVo<>();
return p;
}
}
//单据编号
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("a.billNo", query.getBillNo());
}
if (StringUtils.isNotBlank(query.getBillType())) {
qw.like("a.billType", query.getBillType());
}
if (StringUtils.isNotBlank(query.getRepairState())) {
if (query.getRepairState().equals("维修中")) {
qw.eq("a.repairState", 1);
} else if (query.getRepairState().equals("维修完成")) {
qw.eq("a.repairState", 2);
}
}
//单据日期开始时间-单据日期结束时间
qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (a.entryTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (a.entryTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')"
);
//维修工单编号
if (StringUtils.isNotBlank(query.getSubject())) {
qw.eq("a.subject", query.getSubject());
}
//业务类型
if (StringUtils.isNotBlank(query.getCustomerName())) {
qw.like("a.customerName", query.getCustomerName());
}
if (StringUtils.isNotBlank(query.getVehMark())) {
qw.like("v.vehMark", query.getVehMark());
}
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("v.vinNo", query.getVinNo());
}
if (query.getCompleteState().equals("0")) {
qw.apply("a.completeState = 0 \n" +
"\t\tAND a.repairState > 0 \n" +
"\tAND (a.SUBJECT = '保外' OR ( a.SUBJECT = '保内' AND (a.oldIsReclaim = 1 OR a.isGoOut = 1)))");
} else if (query.getCompleteState().equals("1")) {
qw.eq("a.completeState", 1);
}
}
IPage<AsBusrepairBill> page = PagerUtil.queryToPage(pagerQuery);
IPage<AsBusrepairBillVo> pagging = baseMapper.listPage(page, qw);
PagerVo<AsBusrepairBillVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean saveConfirm(ConfirmDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
AsBusrepairBill asBusrepairBill = asBusrepairBillService.fetchBySid(dto.getSid());
asBusrepairBill.setNodeCode(4);
asBusrepairBill.setNodeName("竣工");
asBusrepairBill.setNodeTime(new DateTime());
asBusrepairBill.setCompleteState(1);
if (StringUtils.isNotBlank(dto.getRemarks())) {
asBusrepairBill.setOutboundRemarks(dto.getRemarks());
}
asBusrepairBillService.updateById(asBusrepairBill);
//新增工单环节信息
AsBusrepairBillNode billNode = new AsBusrepairBillNode();
billNode.setBillSid(sid);
// billNode.setCreateByName(dto.getOperator());
billNode.setNodeName("竣工");
// billNode.setCreateBySid(dto.getOperatorSid());
billNode.setNodeCode("4");
asBusrepairBillNodeService.insert(billNode);
return rb.success();
}
}

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoutbill/WmsOutBillService.java

@ -48,6 +48,7 @@ public class WmsOutBillService extends MybatisBaseService<WmsOutBillMapper, WmsO
private WmsInventoryRecordService wmsInventoryRecordService;
@Autowired
private AsBusrepairInventorybillFeign asBusrepairInventorybillFeign;
public PagerVo<WmsOutBillVo> listPage(PagerQuery<WmsOutBillQuery> pagerQuery) {
WmsOutBillQuery query = pagerQuery.getParams();
QueryWrapper<WmsOutBill> qw = new QueryWrapper<>();
@ -129,7 +130,7 @@ public class WmsOutBillService extends MybatisBaseService<WmsOutBillMapper, WmsO
qw.like("wi.goodsSpuName", query.getGoodsSpuName());
}
if (StringUtils.isNotBlank(query.getName())) {
qw.like("wi.goodsSpuName", query.getName());
qw.and(wrapper -> wrapper.like("wi.goodsSpuName", query.getName()).or().like("wi.goodsSkuCode", query.getName()));
}
//商品编码
if (StringUtils.isNotBlank(query.getGoodsSkuCode())) {
@ -144,7 +145,7 @@ public class WmsOutBillService extends MybatisBaseService<WmsOutBillMapper, WmsO
qw.like("wi.warehouseRackCode", query.getWarehouseRackCode());
}
if (StringUtils.isNotBlank(query.getUseOrgSid())) {
qw.eq("wi.useOrgSid",query.getUseOrgSid());
qw.eq("wi.useOrgSid", query.getUseOrgSid());
}
qw.apply("wi.count > 0");
//ToDo:供应商

Loading…
Cancel
Save